home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / tbbs / prgsourc.zip / HOMES.ZIP / PSUB.PRG < prev    next >
Text File  |  1996-01-08  |  6KB  |  228 lines

  1. PROCEDURE psub          
  2. PARAMETERS md
  3.  
  4. SELECT e
  5.  
  6. PRIVATE x
  7. PRIVATE y
  8. PRIVATE z
  9. PRIVATE page
  10. PRIVATE cnt
  11.  
  12. COUNT TO cnt
  13. GOTO TOP
  14.  
  15. IF cnt > 15
  16.    page = 15
  17.    x = cnt/15 
  18.    z = Int(x) + 1
  19.    DECLARE asub[z]
  20.    x = 1
  21.    asub[x] = sname
  22.    x = 2
  23.    DO WHILE x <= z
  24.       SKIP 15
  25.       asub[x] = sname
  26.       x = x + 1
  27.    ENDDO
  28. ELSE
  29.    page = cnt
  30. ENDIF
  31.  
  32. SET COLOR TO GR+/R
  33. @ 21,0 CLEAR TO 23,79
  34. @ 21,5 SAY "Up/Dn Arrow "
  35. IF cnt > 15
  36.    @ 21,55 SAY "<Page Up>"
  37.    @ 22,55 SAY "<Page Dn>"
  38. ENDIF
  39. @ 23,5 SAY "S"
  40. @ 22,5 SAY "<Enter> "
  41. IF md > 2
  42.    @ 23,55 SAY "N"
  43. ENDIF
  44. SET COLOR TO W+/R
  45. @ 21,17 SAY "= Move within pick list"
  46. IF cnt > 15
  47.    @ 21,65 SAY "= Page Up"
  48.    @ 22,65 SAY "= Page Down"
  49. ENDIF
  50. @ 23,7 SAY "= Not in Subdivision"
  51. @ 22,13 SAY "= Select from pick list"
  52. IF md > 2
  53.    @ 23,57 SAY "= No Preference"
  54. ENDIF          
  55.  
  56. SET COLOR TO BG/BG
  57. @ 3,50 CLEAR TO page+4,74
  58. SET COLOR TO N/BG
  59. @ 3,50 TO page+4,74
  60.  
  61. GOTO TOP
  62. y = 1
  63. x = 1
  64. DO WHILE x + (15 * (y - 1)) < cnt .AND. x < 15
  65.    SKIP
  66.    x = x + 1
  67.    @ x+3,51 SAY sname
  68. ENDDO
  69.  
  70. SET COLOR TO GR+/BG
  71. SEEK asub[y]
  72. @ 4,51 SAY sname
  73.  
  74. x = 1
  75. SET FORMAT TO fscr NOCLEAR
  76. SET COLOR TO N/N
  77. @ 2,0 GET charin
  78. DO WHILE .T.
  79.    READ
  80.    DO CASE
  81.       CASE LastKey() = 3                         && <Page Down>
  82.            IF y = z
  83.               LOOP
  84.            ENDIF
  85.            SET COLOR TO N/BG   
  86.            y = y + 1
  87.            IF y = z
  88.               @ 4,51 CLEAR TO page+3,73 
  89.            ENDIF
  90.            SEEK asub[y]
  91.            x = 1
  92.            DO WHILE x + (15 * (y - 1)) < cnt .AND. x < 15
  93.               SKIP
  94.               x = x + 1
  95.               @ x+3,51 SAY sname
  96.            ENDDO
  97.            SET COLOR TO GR+/BG
  98.            SEEK asub[y]
  99.            @ 4,51 SAY sname
  100.            x = 1
  101.            LOOP
  102.            
  103.       CASE LastKey() = 5                         && <Up Arrow>
  104.            IF x = 1 .AND. y = 1
  105.               LOOP
  106.            ENDIF
  107.            SET COLOR TO N/BG   
  108.            IF x = 1   
  109.               y = y - 1
  110.               SEEK asub[y]
  111.               @ 4,51 SAY sname
  112.               x = 1
  113.               DO WHILE x < 15
  114.                  SKIP
  115.                  x = x + 1
  116.                  @ x+3,51 SAY sname
  117.               ENDDO
  118.               SET COLOR TO GR+/BG
  119.               @ x+3,51 SAY sname
  120.            ELSE
  121.               @ x+3,51 SAY sname
  122.               x = x - 1
  123.               SKIP -1
  124.               SET COLOR TO GR+/BG
  125.               @ x+3,51 SAY sname
  126.            ENDIF
  127.            LOOP
  128.            
  129.       CASE LastKey() = 13                        && <Enter>
  130.            DO CASE
  131.               CASE md = 1                       && Called by enew(list)
  132.                    cksub = sname
  133.               CASE md = 2                       && Called by enew(add)
  134.                    SELECT a
  135.                    REPLACE sub WITH e->sname
  136.               CASE md = 3 .OR. md = 4          && Called by search
  137.                    SELECT d
  138.                    REPLACE sub WITH e->sname
  139.            ENDCASE   
  140.            EXIT
  141.       
  142.       CASE LastKey() = 18                        && <Page Up>
  143.            IF y = 1
  144.               LOOP
  145.            ENDIF
  146.            SET COLOR TO N/BG   
  147.            y = y - 1
  148.            SEEK asub[y]
  149.            x = 1
  150.            DO WHILE x < 15
  151.               SKIP
  152.               x = x + 1
  153.               @ x+3,51 SAY sname
  154.            ENDDO
  155.            SET COLOR TO GR+/BG
  156.            SEEK asub[y]
  157.            @ 4,51 SAY sname
  158.            x = 1
  159.            LOOP
  160.            
  161.       CASE LastKey() = 24                        && <Dn Arrow>
  162.            IF x + (15 * (y - 1)) = cnt
  163.               LOOP
  164.            ENDIF
  165.            
  166.            SET COLOR TO N/BG
  167.            IF x = 15
  168.               IF y = z
  169.                  LOOP
  170.               ENDIF
  171.               y = y + 1
  172.               IF y = z
  173.                  @ 4,51 CLEAR TO page+3,73 
  174.               ENDIF
  175.               SEEK asub[y]
  176.               x = 1
  177.               DO WHILE x + (15 * (y - 1)) < cnt .AND. x < 15
  178.                 SKIP
  179.                 x = x + 1
  180.                 @ x+3,51 SAY sname
  181.               ENDDO
  182.               SET COLOR TO GR+/BG
  183.               SEEK asub[y]
  184.               @ 4,51 SAY sname
  185.               x = 1
  186.            ELSE
  187.               @ x+3,51 SAY sname
  188.               x = x + 1
  189.               SKIP
  190.               SET COLOR TO GR+/BG
  191.               @ x+3,51 SAY sname
  192.            ENDIF
  193.            LOOP
  194.       
  195.       CASE LastKey() = 27                       && <Esc>
  196.            IF md = 3 .OR. md = 4
  197.               SELECT d
  198.            ENDIF
  199.            EXIT
  200.       
  201.       CASE LastKey() = 78 .OR. LastKey() = 110     && No Preference
  202.            IF md < 3
  203.               LOOP
  204.            ENDIF
  205.            SELECT d
  206.            REPLACE sub WITH "..No Preference          "
  207.            EXIT
  208.  
  209.       CASE LastKey() = 83 .OR. LastKey() = 115     && Not in Subdivision
  210.            DO CASE
  211.               CASE md = 1                       && Called by enew(list)
  212.                    LOOP
  213.               CASE md = 2                       && Called by enew(add)
  214.                    SELECT a
  215.                    REPLACE sub WITH "..Not in Subdivision     "
  216.               CASE md = 3 .OR. md = 4          && Called by search
  217.                    SELECT d
  218.                    REPLACE sub WITH "..Not in Subdivision     "
  219.            ENDCASE   
  220.            EXIT
  221.  
  222.       ENDCASE
  223. ENDDO
  224. RELEASE asub
  225. DO cls WITH 2,50,19,74
  226. RETURN
  227.  
  228.